Rencontres R 2023 - Avignon
API == Application Programming Interface
Ce qui n’est vraiment pas très clair
Une API, permet à un ordinateur de demander une information à un autre ordinateur, par internet.
Simplement à une url HTTP
https://calendrier.api.gouv.fr/jours-feries/metropole/2024
Tous les jours fériés de 2024
https://api.punkapi.com/v2/beers?food=banana
Toutes les bières Brewdog qui s’allient bien avec la banane
https://api.github.com/users/thinkr-open
Toutes les infos publiques sur le compte github de ThinkR
Côté client il nous suffit de requêter l’url avec le langage de notre choix.
Peu importe le langage ayant servi à l’implémentation côté serveur.
Et pourquoi pas R ?
Pas de websocket
Pas d’état, n’importe quel client peut requêter n’importe quel serveur
Yet Another: #, #’, #* …
Un package c’est :
> fs::dir_tree("mon.api/")
mon.api/
├── DESCRIPTION
├── NAMESPACE
├── R
│ ├── get_health.R
│ └── run_plumber.R
├── dev
│ └── run_dev.R
├── inst
│ └── mariobox.yml # Le coeur d'une API {mariobox}
├── man
│ ├── get_health.Rd
│ └── run_api.Rd
└── tests
├── testthat
│ ├── test-health.R
│ └── test-run_plumber.R
└── testthat.Rhttp://127.0.0.1:19483/__docs__/Va :
/inst/mariobox.ymlR/get_text.Rtests/testthat/test-get_text.R“Separation of concerns”
Séparation des préoccupations
{mariobox}: des APIs {plumber} à toute épreuve | Retrouvez nous sur https://thinkr.fr